package issr.market.controller;

import issr.market.model.Lotto;
import issr.market.services.CheckRicevutaService;
import issr.market.services.GestioneProdottiService;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;

public class AddettoReclamiController extends AbstractController {

	private static final long serialVersionUID = -6595168414725554560L;
	private static final Logger logger = Logger.getLogger(AddettoReclamiController.class);
	
	private static final String RESTITUZIONE_PRODOTTI = "restituzioneProdotti";
	private static final String CHECK_RICEVUTA = "checkRicevuta";

	private Integer step;
	private String checkEmissione;
	private List<Lotto> lottiTrovati;
	private Map<String, Integer> qProdottiMap;
	
	private String[] idProdotti;
	private String[] idLotti;
	private String[] nomiProdotti;
	private String[] qProdotti;
	private String[] dateScadenza;
	private String[] prezzi;
	
	private String idRicevuta;
	
	@Override
	public String execute() {
		
		if(accessForbidden())
			return "login";
		
		
		if(getActionToDo()!=null && getActionToDo().equals(RESTITUZIONE_PRODOTTI)){
		
			if(step==null) step = 1;
			logger.info("Avvio restituzione prodotti");
			lottiTrovati = new ArrayList<Lotto>();
			qProdottiMap = new HashMap<String, Integer>();
			step = GestioneProdottiService.restituzioneProdotti(idLotti, idProdotti, qProdotti, nomiProdotti, 
					prezzi, dateScadenza, lottiTrovati, qProdottiMap, checkEmissione, step);
		}
		else if(getActionToDo()!=null && getActionToDo().equals(CHECK_RICEVUTA)){
			logger.info("Procedura check ricevuta");
			return CheckRicevutaService.checkRicevuta(idRicevuta);
		}
		
		return "success";
	}


	public Integer getStep() {
		return step;
	}


	public void setStep(Integer step) {
		this.step = step;
	}


	public String getCheckEmissione() {
		return checkEmissione;
	}


	public void setCheckEmissione(String checkEmissione) {
		this.checkEmissione = checkEmissione;
	}


	public List<Lotto> getLottiTrovati() {
		return lottiTrovati;
	}


	public void setLottiTrovati(List<Lotto> lottiTrovati) {
		this.lottiTrovati = lottiTrovati;
	}


	public Map<String, Integer> getqProdottiMap() {
		return qProdottiMap;
	}


	public void setqProdottiMap(Map<String, Integer> qProdottiMap) {
		this.qProdottiMap = qProdottiMap;
	}


	public String[] getIdProdotti() {
		return idProdotti;
	}


	public void setIdProdotti(String[] idProdotti) {
		this.idProdotti = idProdotti;
	}


	public String[] getIdLotti() {
		return idLotti;
	}


	public void setIdLotti(String[] idLotti) {
		this.idLotti = idLotti;
	}


	public String[] getNomiProdotti() {
		return nomiProdotti;
	}


	public void setNomiProdotti(String[] nomiProdotti) {
		this.nomiProdotti = nomiProdotti;
	}


	public String[] getQProdotti() {
		return qProdotti;
	}


	public void setQProdotti(String[] qProdotti) {
		this.qProdotti = qProdotti;
	}


	public String[] getDateScadenza() {
		return dateScadenza;
	}


	public void setDateScadenza(String[] dateScadenza) {
		this.dateScadenza = dateScadenza;
	}


	public String[] getPrezzi() {
		return prezzi;
	}


	public void setPrezzi(String[] prezzi) {
		this.prezzi = prezzi;
	}


	public String getIdRicevuta() {
		return idRicevuta;
	}


	public void setIdRicevuta(String idRicevuta) {
		this.idRicevuta = idRicevuta;
	}
	
	
	
	
	

}
